home *** CD-ROM | disk | FTP | other *** search
/ Your Choice 1 / your choice.zip / your choice / PRGMMING / VISIONIX / VTYPESU.PAS < prev    next >
Pascal/Delphi Source File  |  1993-12-30  |  9KB  |  345 lines

  1. {
  2. ════════════════════════════════════════════════════════════════════════════
  3.  
  4.  Visionix General Type Definitions Unit (VTYPE)
  5.  Copyright 1991,92,93 Visionix
  6.  ALL RIGHTS RESERVED
  7.  
  8. ────────────────────────────────────────────────────────────────────────────
  9.  
  10.  Revision history in reverse chronological order:
  11.  
  12.  Initials  Date      Comment
  13.  --------  --------  -------------------------------------------------------
  14.  
  15.  rob       07/20/93  Added ST40.
  16.  
  17.  mep       04/07/93  Added TCharArray.
  18.  
  19.  mep       03/29/93  Added TDecHex and maxArrSize.
  20.  
  21.  mep       03/20/93  Added TWordArray and TLongIntArray.
  22.  
  23.  mep       02/11/93  Cleaned up code for beta release
  24.  
  25.  jrt       02/08/93  Sync with beta 0.12 release
  26.  
  27.  jrt       12/15/92  Changes for BP 7.0
  28.                        Added constants which are defined in bp 7.0
  29.                        but not in 6.0 so that they are included if
  30.                        this unit is being compiled under 6.0
  31.  
  32.  jrt       11/21/92  Sync with beta 0.08
  33.  
  34.  lpg       10/07/92  Added String Constants:
  35.                        cSPACE,cLoALPHA,cLoALPHANUM,cHiALPHA,cHiALPHANUM,
  36.                        cALPHA,cALPHANUM,cNUMERIC,cGRAMMAR
  37.  
  38.  jrt       09/01/92  First logged revision.
  39.  
  40. ────────────────────────────────────────────────────────────────────────────
  41. }
  42.  
  43. (*-
  44.  
  45. [TEXT]
  46.  
  47. <Overview>
  48.  
  49. VTypesu is a unit that defines a variety of types, defines, and constants
  50. that are used throught the VisionTools libraries.
  51.  
  52. <Interface>
  53.  
  54. -*)
  55.  
  56. Unit VTypesu;
  57.  
  58. Interface
  59.  
  60. {────────────────────────────────────────────────────────────────────────────}
  61.  
  62. Const
  63.  
  64.   {---------}
  65.   { Bitmaps }
  66.   {---------}
  67.  
  68.   CBitMapB : Array[0..7] of Byte =
  69.     ( $1, $2, $4, $8,
  70.       $10, $20, $40, $80 );
  71.  
  72.   CBitMapW : Array[0..15] of Word =
  73.     ( $1, $2, $4, $8,
  74.       $10, $20, $40, $80,
  75.       $100, $200, $400, $800,
  76.       $1000, $2000, $4000, $8000 );
  77.  
  78.   CBitMapL : Array[0..31] of LongInt =
  79.     ( $1, $2, $4, $8,
  80.       $10, $20, $40, $80,
  81.       $100, $200, $400, $800,
  82.       $1000, $2000, $4000, $8000,
  83.       $10000, $20000, $40000, $80000,
  84.       $100000, $200000, $400000, $800000,
  85.       $1000000, $2000000, $4000000, $8000000,
  86.       $10000000, $20000000, $40000000, $80000000 );
  87.  
  88.   {-----------------}
  89.   { Standard errors }
  90.   {-----------------}
  91.  
  92.   SE_Ok       = 0;
  93.   SE_NotFound = 1;
  94.   SE_NoMem    = 2;
  95.   SE_UserESC  = 3;
  96.  
  97.   {--------------------------}
  98.   { Ascii Control Characters }
  99.   {--------------------------}
  100.  
  101.   NUL   = #0;  {^@}     SOH   = #1;  {^A}     STX   = #2;  {^B}
  102.   ETX   = #3;  {^C}     EOT   = #4;  {^D}     ENQ   = #5;  {^E}
  103.   ACK   = #6;  {^F}     BEL   = #7;  {^G}     BS    = #8;  {^H}
  104.   HT    = #9;  {^I}     LF    = #10; {^J}     VT    = #11; {^K}
  105.   FF    = #12; {^L}     CR    = #13; {^M}     SO    = #14; {^N}
  106.   SI    = #15; {^O}     DLE   = #16; {^P}     DC1   = #17; {^Q}
  107.   DC2   = #18; {^R}     DC3   = #19; {^S}     DC4   = #20; {^T}
  108.   NAK   = #21; {^U}     SYN   = #22; {^V}     ETB   = #23; {^W}
  109.   CAN   = #24; {^X}     EM    = #25; {^Y}     SUB   = #26; {^Z}
  110.   ESC   = #27;          FS    = #28; {^\}     GS    = #29; {^`}
  111.   RS    = #30; {^=}     US    = #31; {^-}     SP    = #32;
  112.   DEL   = #127;         BLANK = #255;         XON   = #17;
  113.   XOFF  = #19;
  114.  
  115.   {-------------------------------}
  116.   { Characters and character sets }
  117.   {-------------------------------}
  118.  
  119.   cSPACE      = ' ';
  120.   cLoALPHA    = 'abcdefghijklmnopqrstuvwxyz';
  121.   cLoALPHANUM = 'abcdefghijklmnopqrstuvwxyz0123456789';
  122.   cHiALPHA    = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  123.   cHiALPHANUM = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  124.   cALPHA      = ' abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  125.   cALPHANUM   = ' abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  126.   cNUMERIC    = '0123456789';
  127.   cGRAMMAR    = '!@#$%^&*(){}|[]\<>?,./';
  128.  
  129.   {----------------------------}
  130.   { decimal / hex lookup table }
  131.   {----------------------------}
  132.  
  133.   TDecHex : Array[0..15] of Char = '0123456789ABCDEF';
  134.  
  135.   {--------------------}
  136.   { maximum array size }
  137.   {--------------------}
  138.  
  139.   maxArrSize  = $FFF8;
  140.  
  141. {-------------------------------------------------------------------------}
  142. { Borland Pascal 7.0 compatability constants -- these are constants which }
  143. { are found in Pascal 7.0 but not in 6.0.  They are included so that      }
  144. { they can be used when the VTP units are compiled in 6.0                 }
  145. {-------------------------------------------------------------------------}
  146.  
  147. {$IFNDEF VER70}
  148.  
  149.   Seg0040     = $0040;
  150.   SegA000     = $A000;
  151.   SegB000     = $B000;
  152.   SegB800     = $B800;
  153.  
  154.   SelectorInc = $1000;
  155.  
  156. Type
  157.  
  158.   PChar       = ^Char;
  159.  
  160. {$ENDIF}
  161.  
  162. {--------------------------------------------------------------}
  163. { Define the VDLPROT protected mode flag when not in real mode }
  164. {--------------------------------------------------------------}
  165.  
  166. {$IFDEF DPMI    } {$DEFINE VDLPROT} {$ENDIF}
  167. {$IFDEF WINDOWS } {$DEFINE VDLPROT} {$ENDIF}
  168. {$IFDEF OS2     } {$DEFINE VDLPROT} {$ENDIF}
  169.  
  170. {────────────────────────────────────────────────────────────────────────────}
  171.  
  172. {-------------}
  173. { Misc. Types }
  174. {-------------}
  175.  
  176. Type
  177.  
  178.   PByte      = ^BYTE;
  179.   PInteger   = ^INTEGER;
  180.   PWord      = ^WORD;
  181.   PLongint   = ^LONGINT;
  182.   PPointer   = ^POINTER;
  183.   PReal      = ^REAL;
  184.  
  185.   ST2   = STRING[2];
  186.   ST4   = STRING[4];
  187.   ST5   = STRING[5];
  188.   ST8   = STRING[8];
  189.   ST16  = STRING[16];
  190.   ST20  = STRING[20];
  191.   ST32  = STRING[32];
  192.   ST40  = STRING[40];
  193.   ST80  = STRING[80];
  194.   ST132 = STRING[132];
  195.   ST255 = STRING[255];
  196.  
  197.   PST2   = ^ST2;
  198.   PST4   = ^ST4;
  199.   PST5   = ^ST5;
  200.   PST8   = ^ST8;
  201.   PST16  = ^ST16;
  202.   PST20  = ^ST20;
  203.   PST32  = ^ST32;
  204.   PST40  = ^ST40;
  205.   PST80  = ^ST80;
  206.   PST132 = ^ST132;
  207.   PST255 = ^ST255;
  208.  
  209.   TString = STRING;
  210.   PString = ^TString;
  211.  
  212.   TProcName = String[20];
  213.   PProcName = ^TProcName;
  214.  
  215.   THandle = POINTER;
  216.   PHandle = ^THandle;
  217.  
  218.   {----------------}
  219.   { Free-unions    }
  220.   { (Cast records) }
  221.   {----------------}
  222.  
  223.   TCastWord = RECORD
  224.     LowByte  : BYTE;
  225.     HighByte : BYTE;
  226.   END;
  227.   PCastWord = ^TCastWord;
  228.  
  229.   TCastDWord = RECORD
  230.     LowWord  : WORD;
  231.     HighWord : WORD;
  232.   END;
  233.   PCastDWord = ^TCastDWord;
  234.  
  235.   TCastQWord = RECORD
  236.     LowDWord : LONGINT;
  237.     HighDWord: LONGINT;
  238.   END;
  239.   PCastQWord = ^TCastQWord;
  240.  
  241.   {-----------------}
  242.   { ShortInt arrays }
  243.   {-----------------}
  244.  
  245.   TShortIntArray = ARRAY[1..maxArrSize] of SHORTINT;
  246.   PShortIntArray = ^TShortIntArray;
  247.  
  248.   TShortIntArray0 = ARRAY[0..pred(maxArrSize)] of SHORTINT;
  249.   PShortIntArray0 = ^TShortIntArray0;
  250.  
  251.   TShortIntDArray = Array[1..1] of SHORTINT;
  252.   PShortIntDArray = ^TShortIntDArray;
  253.  
  254.   TShortIntDArray0 = Array[0..0] of SHORTINT;
  255.   PShortIntDArray0 = ^TShortIntDArray0;
  256.  
  257.   {-------------}
  258.   { Byte arrays }
  259.   {-------------}
  260.  
  261.   TByteArray = ARRAY[1..maxArrSize] of BYTE;
  262.   PByteArray = ^TByteArray;
  263.  
  264.   TByteArray0 = ARRAY[0..pred(maxArrSize)] of BYTE;
  265.   PByteArray0 = ^TByteArray0;
  266.  
  267.   TByteDArray = Array[1..1] of BYTE;
  268.   PByteDArray = ^TByteDArray;
  269.  
  270.   TByteDArray0 = Array[0..0] of BYTE;
  271.   PByteDArray0 = ^TByteDArray0;
  272.  
  273.   {-------------}
  274.   { Char arrays }
  275.   {-------------}
  276.  
  277.   TCharArray = ARRAY[1..maxArrSize] of CHAR;
  278.   PCharArray = ^TCharArray;
  279.  
  280.   TCharArray0 = ARRAY[0..pred(maxArrSize)] of CHAR;
  281.   PCharArray0 = ^TCharArray0;
  282.  
  283.   TCharDArray = Array[1..1] of CHAR;
  284.   PCharDArray = ^TCharDArray;
  285.  
  286.   TCharDArray0 = Array[0..0] of CHAR;
  287.   PCharDArray0 = ^TCharDArray0;
  288.  
  289.   {----------------}
  290.   { Integer arrays }
  291.   {----------------}
  292.  
  293.   TIntArray = ARRAY[1..(maxArrSize DIV 2)] of INTEGER;
  294.   PIntArray = ^PIntArray;
  295.  
  296.   TIntArray0 = ARRAY[0..Pred(maxArrSize DIV 2)] of INTEGER;
  297.   PIntArray0 = ^PIntArray0;
  298.  
  299.   TIntDArray = Array[1..1] of INTEGER;
  300.   PIntDArray = ^TIntDArray;
  301.  
  302.   TIntDArray0 = Array[0..0] of INTEGER;
  303.   PIntDArray0 = ^TIntDArray0;
  304.  
  305.   {-------------}
  306.   { Word arrays }
  307.   {-------------}
  308.  
  309.   TWordArray = ARRAY[1..(maxArrSize DIV 2)] of WORD;
  310.   PWordArray = ^PWordArray;
  311.  
  312.   TWordArray0 = ARRAY[0..Pred(maxArrSize DIV 2)] of WORD;
  313.   PWordArray0 = ^PWordArray0;
  314.  
  315.   TWordDArray = Array[1..1] of WORD;
  316.   PWordDArray = ^TWordDArray;
  317.  
  318.   TWordDArray0 = Array[0..0] of WORD;
  319.   PWordDArray0 = ^TWordDArray0;
  320.  
  321.   {----------------}
  322.   { Longint arrays }
  323.   {----------------}
  324.  
  325.   TLongIntArray = ARRAY[1..(maxArrSize DIV 4)] of LONGINT;
  326.   PLongIntArray = ^TLongIntArray;
  327.  
  328.   TLongIntArray0 = ARRAY[0..Pred(maxArrSize DIV 4)] of LONGINT;
  329.   PLongIntArray0 = ^TLongIntArray0;
  330.  
  331.   TLongIntDArray = Array[1..1] of LONGINT;
  332.   PLongIntDArray = ^TLongIntDArray;
  333.  
  334.   TLongIntDArray0 = Array[0..0] of LONGINT;
  335.   PLongIntDArray0 = ^TLongIntDArray0;
  336.  
  337. {────────────────────────────────────────────────────────────────────────────}
  338. {────────────────────────────────────────────────────────────────────────────}
  339. {────────────────────────────────────────────────────────────────────────────}
  340.  
  341. Implementation
  342.  
  343. BEGIN
  344. END.
  345.